/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;
 
 
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import javax.swing.JOptionPane;

/**
 *
 * @author avbravo
 */
public class CierreMensualBeans {

    static int anio;
    static java.sql.Date fecha;
    static String mes;
    static String idusuario;
    static String idmunicipio;
    Sesion sesion;

    public CierreMensualBeans() {
        sesion = new Sesion();
    }

    public static int getAnio() {
        return anio;
    }

    public static void setAnio(int anio) {
        CierreMensualBeans.anio = anio;
    }

    public static java.sql.Date getFecha() {
        return fecha;
    }

    public static void setFecha(java.sql.Date fecha) {
        CierreMensualBeans.fecha = fecha;
    }

    public static String getIdmunicipio() {
        return idmunicipio;
    }

    public static void setIdmunicipio(String idmunicipio) {
        CierreMensualBeans.idmunicipio = idmunicipio;
    }

    public static String getIdusuario() {
        return idusuario;
    }

    public static void setIdusuario(String idusuario) {
        CierreMensualBeans.idusuario = idusuario;
    }

    public static String getMes() {
        return mes;
    }

    public static void setMes(String mes) {
        CierreMensualBeans.mes = mes;
    }
    
      public boolean Consultar(int anio, String mes) {
        try {
            if (anio <= 2007) {
                JOptionPane.showMessageDialog(null, "Ingrese un año adecuado\nCierreMesualBeans.java\nMetodo:Consultar()", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (mes == null || mes.equals("")){
                JOptionPane.showMessageDialog(null, "Seleccione el mes", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from cierremensual where idmunicipio = ? and anio = ? and mes =?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setInt(2, anio);
            psquery.setString(3,mes);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                JOptionPane.showMessageDialog(null, "No existen registros para ese año y mes", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            String activo = rs.getString("activo");
            if (activo.equals("no")) {
                JOptionPane.showMessageDialog(null, "Este registro esta inactivo", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                sesion.con.close();
                return false;
            }
            setAnio(anio);
            setFecha(rs.getDate("fecha"));
            setIdmunicipio(rs.getString("idmunicipio"));
            setMes(rs.getString("mes"));
            sesion.con.close();
            return true;
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "Error. Consultar()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }

    /*
     *Esta funcion devuelve un valor de true si lo encontro
     * o false si no existe, no guarda el valor en los componentes
     * del bean, ni envia mensajes de si existe o no. 
     * 
     */ 
    public boolean VerificarExiste(int anio, String mes) {
        try {
            if (anio <= 2007) {
                JOptionPane.showMessageDialog(null, "Ingrese un año adecuado\nCierreMensualBeans.java\nMetodo:VerificarExiste() " , "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (mes == null || mes.equals("")){
                JOptionPane.showMessageDialog(null, "Seleccione el mes", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }

            String sqlquery = "select * from cierremensual where idmunicipio = ? and anio = ? and mes = ?";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setInt(2, anio);
            psquery.setString(3,mes);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                sesion.con.close();
                return false;
            }
            sesion.con.close();
            return true;

        } catch (Exception ex) {
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "CierreMensualBeans.VerificarExiste()", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
    
      public boolean Agregar() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "INSERT into cierremensual  VALUES(?,?,?,?,?,?)";
            PreparedStatement prest = sesion.con.prepareStatement(sql);

            prest.setInt(1, getAnio());
            prest.setString(2,getMes());
            prest.setDate(3, getFecha());
            prest.setString(4, "si");
            prest.setString(5, sesion.getUsername());
            prest.setString(6, sesion.getIdmunicipio());
            
            int count = prest.executeUpdate();

            sesion.con.close();
            JOptionPane.showMessageDialog(null, "Cierre Mensual guardado exitosamente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
            return true;

        } catch (Exception ex) {
            System.out.println("Error" + ex);
            JOptionPane.showMessageDialog(null, "Error " + ex.getMessage(), "CierreMensualBeans.Agregar() ", JOptionPane.ERROR_MESSAGE);
        }
        return false;
    }
}
